package controleur;

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import modele.CKModel;
import modele.Exporter;
import modele.TreeLayout;
import vue.PanelCK;
import vue.PanelChoice;
import vue.PanelText;
import vue.VueEditeurCK;

public class ControleLoadSaveFile implements ActionListener {

	
	private CKModel<String, String> _modele;
	private VueEditeurCK _vue;
	
	public ControleLoadSaveFile(CKModel<String, String> modele, VueEditeurCK vue){
		this._modele = modele;
		this._vue = vue;
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == _vue.getSaveGraphItem()){
			
			_modele.save();
			
		} else if (e.getSource() == _vue.getOldSave()){
			
			Exporter exp = new Exporter();
			exp.toECG(_modele);
			
		} else if (e.getSource() == _vue.getLoadGraphItem()){
			
			
			_modele = _modele.load();
			
			TreeLayout tl = new TreeLayout(_modele);
			tl.buildTree();
			
			VueEditeurCK vue = new VueEditeurCK(_modele);
			
			
			
			// Création du panel de visualisation
			vue.setPanelCK(new PanelCK(_modele, vue));
			

			// Création du panel de choix
			vue.setPanelC(new PanelChoice(_modele, vue));
			
			vue.getEditorFrame().remove(vue.getPanelC0());
			vue.getEditorFrame().add(vue.getPanelC(), BorderLayout.NORTH);
			vue.getEditorFrame().add(vue.getPanelCK(), BorderLayout.CENTER);
			
//			vue.getEditorFrame().paint(vue.getEditorFrame().getGraphics());
			vue.dessiner();
			
			_vue.getEditorFrame().dispose();
		}
		
	}
}
